package co.yixiang.handler;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * API错误类，用于封装API响应中的错误信息
 */
@Data
class ApiErr {

    // 错误状态码
    private Integer status;

    // 错误发生的时间戳，使用@JsonFormat注解格式化时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime timestamp;

    // 错误信息
    private String msg;

    /**
     * 私有无参构造方法，在创建ApiErr对象时自动设置当前时间为发生错误的时间
     */
    private ApiErr() {
        timestamp = LocalDateTime.now();
    }

    /**
     * 公有构造方法，用于创建带有错误状态码和错误信息的ApiErr对象
     *
     * @param status 错误状态码
     * @param message 错误信息
     */
    public ApiErr(Integer status, String message) {
        this();
        this.status = status;
        this.msg = message;
    }
}
